const express = require('express')

var session = require('express-session')
var cookieParser = require('cookie-parser');
const app = express()
// app.use(cors())
app.use(cookieParser());
// 2.配置Session 中间件
app.use(session({
  secret: 'keyboard cat', //配置加密字符串,它会在原有加密基础之上和这个字符串拼起来去加密,目的是为了增加安全性,防止客户端恶意伪造
  resave: false,//强制保存 session 即使它并没有变化,。默认为 true。建议设置成 false 
  name: 'captcha',//保存在本地cookie的一个名字 默认connect.sid  可以不设置
  saveUninitialized: true, //设置为true:无论你是否使用 SessionId我都默认直接给你分配一把钥匙
  //设置为false:如果你删除了sessionId，只有你重新请求服务器，才会给你重新分配一把，不然就一直为空
  rolling: true,//在每次请求时强行设置 cookie，这将重置 cookie 过期时间(默认:false)
  cookie: {
    maxAge: 1000 * 60 * 60//过期时间
  }
}))
// 加载bodyParser模块
const bodyParser = require("body-parser")
app.use(bodyParser.urlencoded({
  extended: false,
}))
app.use(bodyParser.json())
const port = 3001

//设置跨域访问
// app.all('*', (req, res, next) => {
//   res.header("Access-Control-Allow-Origin", "*");
//   res.header("Access-Control-Allow-Headers", "X-Requested-With");
//   res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
//   res.header("X-Powered-By",' 3.2.1')
//   res.header("Content-Type", "application/json;charset=utf-8");
//   next();
// });
// 服务端设置响应头
app.use(function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*")
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
  res.header('Access-Control-Allow-Credentials', 'true');//允许携带cookie
  next()
})

// 1.导入路由模块
const useRouter = require('./router/index.js')
const loginRouter = require('./router/login.js')
//  2.注册路由模块使用 app.use()注册路由模块，并统添加统一访问前缀 /api
app.use('/api', useRouter)
app.use('/api',loginRouter)


// app.use()的作用就是注册一个全局的中间件
app.use(express.static('public'))
app.use('/static', express.static('images'))
app.use('/pages', express.static('pages'))




// app.get('/', (req, res) => {
//   res.send('Hello World!')
// })


app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})